package explore.jqq.list;
import com.sun.xml.internal.fastinfoset.tools.XML_SAX_StAX_FI;

import java.util.Arrays;
//给你一幅由 N × N 矩阵表示的图像，其中每个像素的大小为 4 字节。请你设计一种算法，将图像旋转 90 度。
//        不占用额外内存空间能否做到？
//给定 matrix =
//        [
//        [1,2,3],
//        [4,5,6],
//        [7,8,9]
//        ],
//
//        原地旋转输入矩阵，使其变为:
//        [
//        [7,4,1],
//        [8,5,2],
//        [9,6,3]
//        ]

public class RotationMatrix {
    public static void main(String[] args) {
        RotationMatrix rotationMatrix = new RotationMatrix();
        rotationMatrix.rotate(new int[][] {{1,2,3},{4,5,6},{7,8,9}});
    }

    public void rotate(int[][] matrix) {
        for(int i=0;i< matrix.length;i++){
            for(int j=0;j<matrix.length;j++){
                if(i==j){
                    break;
                }
                matrix[i][j] = matrix[i][j] + matrix[j][i];
                matrix[j][i] = matrix[i][j] - matrix[j][i];
                matrix[i][j] = matrix[i][j] - matrix[j][i];
            }
        }
        for(int i=0;i< matrix.length;i++) {
            for (int j = 0; j < matrix.length/2; j++) {
                matrix[i][j] = matrix[i][matrix.length - j - 1] + matrix[i][j];
                matrix[i][matrix.length - j - 1] = matrix[i][j] - matrix[i][matrix.length - j - 1];
                matrix[i][j] = matrix[i][j] - matrix[i][matrix.length - j - 1];
            }
        }
    }
}
